< previous page page_208 next page >

Page 208
checks are complete, the shipping team ships the product. In the case of an online order, the Web site server combines all of these tasks unto itself, requesting demographic and legal/licensing information from the customer.
An order entry system typically exhibits behaviors related to the following:
Capturing an order for some product or service
Enforcing rules related to the product or service being ordered
Submitting subsequent auxiliary order fulfillment requests to back office workers/workgroups
Advanced order processing systems would incorporate a subsystem for tracking order fulfillment progress for each worker/workgroup. Because the work of each worker will not be done at the same speed, tracking becomes quite complex in terms of the overall fulfillment of the order. That is, each work request associated with a given order is like a fulfillment thread. If the customer cancels the order, all fulfillment threads must be closed. In this case, some threads may be complete, which means that whatever work was done will need to be rolled back. Finally, order processing is not complete until the last work request is fulfilled.
Generally speaking, you can break up an order entry and processing application into the following subsystems:
OrderEntryCapture
ProductRuleEnforcement
WorkRequestSubmission
WorkRequestTracking
Figure 9.1 shows a Visual Modeler class diagram of the control classes of these subsystems. Figure 9.2 shows the component view of these subsystems. (The component view is helpful when you plan to implement your subsystems as components.) The dashed arrow between the components symbolizes the dependency relationship. It is a semantically weak notation that lets you know that the component on the originating side of the arrow needs some operation to be performed by the receiver-side component. The OrderEntryCapture component is dependent on WorkRequestSubmission to approve the order and submit it to the workers/workgroups through the WorkRequestTracking component. For the approval operation, WorkRequestSubmission is dependent on ProductRuleEnforcement.

 
< previous page page_208 next page >

If you like this book, buy it!